package cn.vehicle.biz;

import cn.vehicle.domains.vo.BasePage;
import cn.vehicle.domains.vo.req.sysPermission.AddPermissionReq;
import cn.vehicle.domains.vo.req.sysPermission.PermissionListReq;
import cn.vehicle.domains.vo.req.sysPermission.UpdatePermissionReq;
import cn.vehicle.domains.vo.res.sysPermission.SysPermissionRes;

public interface SysPermissionBiz {
    /**
     * 新增权限
     *
     * @param req 新增权限请求参数
     */
    void addPermission(AddPermissionReq req);

    /**
     * 更新权限信息
     *
     * @param req 更新权限请求参数，需包含主键ID
     */
    void updatePermission(UpdatePermissionReq req);

    /**
     * 删除权限
     *
     * @param id 权限主键ID
     */
    void deletePermission(Long id);

    /**
     * 根据ID查询权限详情
     *
     * @param id 权限主键ID
     * @return 权限详情响应对象
     */
    SysPermissionRes getPermissionById(Long id);

    /**
     * 分页查询权限列表
     *
     * @param req 查询条件与分页参数
     * @return 分页结果（权限列表）
     */
    BasePage<SysPermissionRes> list(PermissionListReq req);
}
